package com.hello.system.service;

import java.util.List;
import com.hello.system.domain.TreeHoleReadRecords;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * 树洞内容已阅记录Service接口
 * 
 * @author hello
 * @date 2025-05-27
 */
public interface ITreeHoleReadRecordsService extends IService<TreeHoleReadRecords>
{
    /**
     * 查询树洞内容已阅记录
     * 
     * @param recordId 树洞内容已阅记录主键
     * @return 树洞内容已阅记录
     */
    public TreeHoleReadRecords selectTreeHoleReadRecordsByRecordId(Long recordId);

    /**
     * 查询树洞内容已阅记录列表
     * 
     * @param treeHoleReadRecords 树洞内容已阅记录
     * @return 树洞内容已阅记录集合
     */
    public List<TreeHoleReadRecords> selectTreeHoleReadRecordsList(TreeHoleReadRecords treeHoleReadRecords);

    /**
     * 新增树洞内容已阅记录
     * 
     * @param treeHoleReadRecords 树洞内容已阅记录
     * @return 结果
     */
    public int insertTreeHoleReadRecords(TreeHoleReadRecords treeHoleReadRecords);

    /**
     * 修改树洞内容已阅记录
     * 
     * @param treeHoleReadRecords 树洞内容已阅记录
     * @return 结果
     */
    public int updateTreeHoleReadRecords(TreeHoleReadRecords treeHoleReadRecords);

    /**
     * 批量删除树洞内容已阅记录
     * 
     * @param recordIds 需要删除的树洞内容已阅记录主键集合
     * @return 结果
     */
    public int deleteTreeHoleReadRecordsByRecordIds(Long[] recordIds);

    /**
     * 删除树洞内容已阅记录信息
     * 
     * @param recordId 树洞内容已阅记录主键
     * @return 结果
     */
    public int deleteTreeHoleReadRecordsByRecordId(Long recordId);
    
    /**
     * 检查用户是否已阅读指定树洞内容
     * 
     * @param userId 用户ID
     * @param entryId 树洞内容ID
     * @return 是否已阅读
     */
    public boolean checkUserHasRead(Long userId, Long entryId);
    
    /**
     * 根据用户ID和树洞条目ID删除已阅记录
     * 
     * @param userId 用户ID
     * @param entryId 树洞条目ID
     * @return 结果
     */
    public int deleteTreeHoleReadRecordsByUserIdAndEntryId(Long userId, Long entryId);
}
